import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

/**
 * defineStore
 * 1. defineStore 定义的响应式变量、计算属性、函数等都能实现无论在哪里使用，均能数据同步
 * 2. defineStore()的第一个参数要求是`独一无二`的，这个名字也被用作id,Pinia将用它来连接store和devtools
 * 3. defineStore()的第二个参数可接收两类值：Setup函数或Option对象
 * 4. defineStore()的返回函数名通常为 use+`第一个参数`+Store
 */

export const useCounterStore = defineStore('counter', () => {
  const count = ref(0)
  const doubleCount = computed(() => count.value * 2)
  function increment() {
    count.value++
  }

  // 记得返回state的所有需要属性
  return { count, doubleCount, increment }
})
